from numba import njit
import numpy as np


@njit
def angle(t=1, theta=1):
    """angle boundary function

    Arguments
    ---------
        t (int, optional): _description_. Defaults to 1.
        theta (int, optional): _description_. Defaults to 1. When t increase 1s, the boundary decrease 1.5 unit. 

    Returns
    -------
        np.array: Array of boundary values, same length as t
    """
    return np.multiply(t, (-np.sin(theta) / np.cos(theta)))

@njit
def weibull_cdf(t=1, alpha=1, beta=1):
    """boundary based on weibull survival function.

    Arguments
    ---------
        t (int, optional): Defaults to 1.
        alpha (int, optional): Defaults to 1.
        beta (int, optional): Defaults to 1.

    Returns
    -------
        np.array: Array of boundary values, same length as t
    """
    return np.exp(-np.power(np.divide(t, beta), alpha))